The invention is generally related to electronic data storage systems which are accessed via a network, and more particularly to provisioning applications with storage resources. Different applications have different storage resource requirements based on a variety of factors. In addition, each application may have multiple storage resource service level agreements. Certain storage resources are required to support basic operation of an application and to meet its expected service level, and other storage resources may affect application performance. Storage administrators configure storage arrays to meet predefined customer availability and performance requirements. Generally, availability can include ability to survive failures, time to recover from failures, and mean time to failure, and performance may include bandwidth, response time, and I/O rate. Storage array configuration is typically performed independently of server and application configuration because multiple disparate applications are typically supported by a single storage array and configured or re-configured independently. As a result, there is a risk of interference, performance degradation and compliance problems among storage resources assigned to separate applications. In order to avoid such problems it is common to involve both a storage administrator and an application administrator to deploy a new application or server, or to change a service level. For example, the application administrator may determine that an application requires a 1 ms response time, and the storage administrator would then allocate the appropriate drive technology needed to satisfy that requirement. Networking and server changes may in turn be needed to present the storage to the application. Coordinating the three activities is error prone. Consequently, deployment can be prone to error, slow and costly. The problem tends to be even more acute in Cloud environments because Clouds involve large pools of resources with resources being allocated dynamically, e.g. for application mobility, through self-service portals. Therefore, the problem must be addressed is a way that is agile and scaleable.